%{
   #include <stdio.h>
   #include <string.h>
	 #include "ts.h"
   void yyerror (char const *);
   
%}

%union {
   token *tptr; /* Para retornar punteros a nodos de la tabla de símbolos. */
}
%token <tptr> HEAD0 HEAD1 HEAD2 HEAD4 HEADS ONEB /* Se definen los tokens como punteros a la tabla de símbolos. */
%start inicio


%% /* Gramática */
	inicio: steamFisico inicioP{;};

	inicioP: /* vacío */{;}
	| inicio{;};

	steamFisico: HEAD2 medio HEAD4{;};

	medio: HEAD2  medio HEAD4  cuerpo{;}
	| cuerpo{;}
	| HEAD2  medio HEAD4 {;}
	| HEAD2  medio HEAD4  paginaP cuerpo{;}

	cuerpo: pagina{;}
	| pagina cuerpo{;}

	pagina: HEAD0 {;}
	| HEAD0  paginaP{;}

	paginaP: HEAD1 {;}
	| HEAD1  paginaP{;} 
%%

/* Función llamada por yyparse cuando ocurre un error. */
void yyerror (char const *s) {
   printf ("%s\n", s);
}




